﻿using TDMS.Net.Internals;

namespace TDMS.Net;

/// <summary>
/// Defines the interface for all TDMS objects.
/// </summary>
public interface ITdmsObject
{
    IntPtr Handle { get; }

    /// <summary>
    /// Gets the name of a TDMS object.
    /// </summary>
    string Name { get; }

    /// <summary>
    /// Gets the description of a TDMS object.
    /// </summary>
    string Description { get; }

    /// <summary>
    /// Gets the parent object of a TDMS object.
    /// </summary>
    ITdmsContainerObject? Parent { get; }

    /// <summary>
    /// Returns the collection of properties for the TDMS object.
    /// </summary>
    TdmsPropertyCollection GetProperties();
}